package com.junxonline.common.exception;

import java.io.Serializable;

/**
 *
 * @ClassName: BizException
 * @Description: 业务异常基类
 * @author lijx
 *
 * 所有业务异常都必须继承于此异常
 * 定义异常时，需要先确定异常所属模块。
 * 前2位数为系统模块编号,后2位为功能模块编号,最后3位为具体业务异常编号 ,共7位(目前暂定)必须保持唯一 <br>
 * 未知错误：9999999
 * 系统异常 99 <br>
 * 管理平台 10 <br>
 *
 *
 */
public class BizException extends RuntimeException implements Serializable {

	/**
	 * 异常信息
	 */
	protected String msg;

	/**
	 * 具体异常码
	 */
	protected String code;

	public BizException(String code, String msgFormat, Object... args) {
		super(String.format(msgFormat, args));
		this.code = code;
		this.msg = String.format(msgFormat, args);
	}

	public BizException() {
		super();
	}

	public String getMsg() {
		return msg;
	}

	public String getCode() {
		return code;
	}

	/**
	 * 实例化异常
	 * 
	 * @param msgFormat
	 * @param args
	 * @return
	 */
	public BizException newInstance(String msgFormat, Object... args) {
		return new BizException(this.code, msgFormat, args);
	}

	public BizException(String message, Throwable cause) {
		super(message, cause);
	}

	public BizException(Throwable cause) {
		super(cause);
	}

	public BizException(String message) {
		super(message);
	}
}
